Technote 1134

The Preferences Problem

ñ⁄éü

ê›íËÉtÉ@ÉCÉãÇÃñ‚ëË

âê‡

ñ¿Ç¡ÇΩèÍçáÇÕ

Ç‹ÇΔÇfl

ÉTÉìÉvÉãÉRÅ[Éh

É_ÉEÉìÉçÅ[Éh

ê›íË (preferences) ÇÕÇŸÇΔÇÒÇ«Ç∑Ç◊ǃÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ïKóvǻLJÇÃÇ»ÇÃÇ…ÅAMac OS API Ç…ÇÕDZÇÃèàóùÇéxâáÇ∑ÇÈLJÇÃǙdžÇËÇ‹ÇπÇÒÅBDZÇÃÇΩÇflÅAê›íËÇê≥ǵÇ≠èàóùÇ∑ÇÈÇ…ÇÕǩǻÇËÇÃó ÇÃÉRÅ[ÉhÇèëÇ≠ïKóvǙdžÇËÇ‹Ç∑ÅB

DZÇà TECHNOTE Ç≈ÇÕÅAê›íËÉtÉ@ÉCÉãÇ…î∫ǧñ‚ëËÇΔâåàï˚ñ@DžǬǢǃäTóvÇê‡ñæÇµÅAäÆê¨ìxÇÃçÇÇ¢êªïiÇçÏê¨Ç≈Ç´ÇÈÇÊǧDžÇÊǧDžǵNjÇ∑ÅB

Ç«ÇÃÇÊǧǻñ‚ëËDžLJâåàï˚ñ@ÇÕï°êîdžÇËÇ‹Ç∑ÅBdžÇÁljÇÈèÍçáÇ…ëŒâûÇ≈Ç´ÇÈÇŸÇ«Ç∑ÇÆÇÍÇΩâåàï˚ñ@ÇÕdžÇËÇ‹ÇπÇÒÅBDZÇà TECHNOTE Ç≈ÇÕÅAìKêÿÇ»ëIëéàÇè„Ç∞ÅAǪÇÍǺÇÍÇÃâåàçÙDžǬǢǃâê‡ÇµÇ‹Ç∑ÅBǪǧǵÇΩèÓïÒÇåüì¢ÇµÇƒÅAÇ«ÇÃï˚ñ@Çé¿ëïÇ∑ÇÈÇ©ÇåàíËǵǃÇ≠ÇæÇ≥Ç¢ÅB

DZÇà TECHNOTE ÇÕÅAê›íËÉtÉ@ÉCÉã (Ç–ÇΔǬNjÇΩÇÕï°êî) ÇégópÇ∑ÇÈÉfÉxÉçÉbÉpÇëŒè€Ç…èëǴNjǵÇΩÅBdžÇÁljÇÈâ¬î\ê´ÇÉJÉoÅ[ǵÅAê≥ǵÇ≠ê›íËÉtÉ@ÉCÉãÇèàóùǵÇΩÇ¢ÇΔçlǶÇÈÉfÉxÉçÉbÉpÇ™ëŒè€Ç≈Ç∑ÅB

Å@

ê›íËÉtÉ@ÉCÉãÇÃñ‚ëË

ê›íËÉtÉ@ÉCÉãÇΔÇÕ: ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ÇÕÇŸÇ⁄Ç∑Ç◊ǃDžê›íËÉtÉ@ÉCÉãǙdžÇËÇ‹Ç∑ÅBñ{óàLJÇÃÇ≤ÇΔÇä»íPDžǵǃÇ≠ÇÍÇÈÇ◊Ç´ÇΔDZÇÎÇ™ÅAîÒèÌÇ»ãÍí…ÇΔÉtÉâÉXÉgÉåÅ[ÉVÉáÉìÇÃå≥DžǻǡǃǵNjǧDZÇΔÇ™ÇÊÇ≠džÇËÇ‹Ç∑ÅB

ê›íËÉtÉ@ÉCÉãDžNjǬÇÌÇÈéÂÇ»ñ‚ëËÇΔÇÕâΩÇ≈ǵÇÂǧǩÅB

  1. ê›íËÉtÉ@ÉCÉãÇ…ÇÕÇ«ÇÒÇ»ñºëOÇïtÇØÇÈÇ◊Ç´Ç≈ǵÇÂǧǩÅB
  2. ê›íËÉtÉ@ÉCÉãÇÕǫDZDžíuÇ´Ç‹Ç∑Ç©ÅB
  3. ê›íËÉtÉ@ÉCÉãÇ…ÇÕÇ«ÇÒÇ»ÉtÉ@ÉCÉãÉ^ÉCÉvÇΔÉNÉäÉGÅ[É^ÇégǧÇ◊Ç´Ç≈Ç∑Ç©ÅB
  4. ê›íËÉtÉ@ÉCÉãÇÕǫǧǂǡǃå©Ç¬ÇØÇ‹Ç∑Ç©ÅB
  5. ê›íËÉtÉ@ÉCÉãÇ…ÇÕ 'vers' ÉäÉ\Å[ÉXÇä‹ÇflÇÈÇ◊Ç´Ç≈Ç∑Ç©ÅB
  6. ê›íËÉtÉ@ÉCÉãÇ…ê≥ǵǢÉAÉCÉRÉìÇä÷òAïtÇØÇÈÇ…ÇÕǫǧǵÇΩÇÁÇÊÇ¢Ç≈ǵÇÂǧÅB
  7. ÉÜÅ[ÉUÇ™ê›íËÉtÉ@ÉCÉãÇÉ_ÉuÉãÉNÉäÉbÉNǵÇΩÇÁǫǧǵNjÇ∑Ç©ÅB
  8. ê›íËÉtÉ@ÉCÉãÇ™ë∂ç›ÇµÇ»Ç¢èÍçáÇÕǫǧǵNjÇ∑Ç©ÅB
  9. ê›íËÉtÉ@ÉCÉãÇ…èëÇ´çûÇflǻǢèÍçáÇÕǫǧǵNjÇ∑Ç©ÅB
  10. ê›íËÉtÉ@ÉCÉãÇ™âÛÇÍÇΩÇÁǫǧǵNjÇ∑Ç©ÅB
  11. ï ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇΔê›íËÉtÉ@ÉCÉãÇ™ÉRÉìÉtÉäÉNÉgÇãNDZǵÇΩÇÁǫǧǵNjÇ∑Ç©ÅB

é¿ç€Ç…ÇÕDZÇÍÇÁÇ∑Ç◊ǃÇÃñ‚ëËÇÅAÇ–ÇΔǬÇÃï˚ñ@Ç≈âåàǵÅAǪÇÍÇ™èÌÇ…ê≥ǵǢÇΔǢǧDZÇΔÇÕdžÇËǶNjÇπÇÒÅBDZÇÃDZÇΔÇêSÇ…óØÇflǃÅAå¬ï ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ÇΔǡǃÇ≈Ç´ÇÈÇæÇØóùëzìIÇ»âåàÇ…ãflÇ√Ç≠ÇΩÇflÇ…ïKóvÇ»èÓïÒÇíÒãüǵÇÊǧÇΔévǢNjÇ∑ÅB

Åwdevelop 18ÅxÇ…ÅuThe Write Way to Implement Preferences FilesÅvÇΔǢǧãLéñÇ™ç⁄ǡǃǢNjÇ∑ÅBDeveloper Technical Support (DTS) ÇÕÉfÉxÉçÉbÉpǙDZÇÃãLéñÇÃÇ∑Ç∑ÇflÇ…ïKÇ∏ǵÇΩǙǧÇ◊Ç´ÇæÇΔçlǶǃǢÇÈÇÌÇØÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBDZÇà TECHNOTE ÇÕǪÇÃãLéñÇ…ë„ÇÌÇÈLJÇÃÇ≈Ç∑ÅBíPÇ…éëóøÇΔǵǃÅAǪÇÃíÜÇ≈èqÇ◊ÇÁÇÍǃǢÇÈã÷é~éñçÄÇímÇËÇΩÇ¢èÍçáÇÕÅAãLéñÇÉ_ÉEÉìÉçÅ[ÉhǵǃämîFǵǃÇ≠ÇæÇ≥Ç¢ÅB


Å@

âê‡

ê›íËÇÉtÉ@ÉCÉãì‡Ç…ï€ë∂Ç∑ÇÈï˚ñ@ÇÕé©óRÇ≈Ç∑ÅBÉtÉâÉbÉgÇ»ç\ë¢Ç≈ï€ë∂ǵǃÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃãNìÆéûÇ…ÉnÉìÉhÉãÇ…íºê⁄ì«Ç›çûÇfiDZÇΔLJÅALJǡÇΔï°éGÇ»å`éÆÇ≈ï€ë∂Ç∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅB

Å@

ê›íËÉtÉ@ÉCÉãÇ…ÇÕÇ«ÇÒÇ»ñºëOÇïtÇØÇÈÇ◊Ç´Ç≈Ç∑Ç‹Ç∑Ç©ÅB

ê›íËÉtÉ@ÉCÉãÇ…ïtÇØÇÈñºëOÇÕäÆëSÇ…é©óRÇ≈Ç∑ÅBDTS Ç©ÇÁÇÃóBàÍÇÃÇ®äËÇ¢ÇÕÅAèIÇËÇ "Prefs" DžǵǻǢDZÇΔÇ≈Ç∑ÅBë„ÇÌÇËÇ… "Preferences" ÇégǡǃÇ≠ÇæÇ≥Ç¢ÅBǪÇÃÉtÉ@ÉCÉãÇ…ì¸Ç¡ÇƒÇ¢ÇÈLJÇÃÇ™ÅAçÌèúÇ∑ÇÈÇΔäÎåØÇ»ì‰ÇÃèdóvÉfÅ[É^Ç≈Ç»Ç≠ÅAíPÇ…ó·Ç¶ÇŒ SurfWriter ÇÃê›íËÇ≈džÇÈDZÇΔÇÉÜÅ[ÉUÇ…ÇÊÇ≠ÇÌÇ©ÇÈÇÊǧDžÇ∑ÇÈÇΩÇflÇ≈Ç∑ÅB

DZÇÍÇÕç±ç◊Ç»éñïøÇΔévÇÌÇÍÇÈǩLJǵÇÍÇ‹ÇπÇÒÇ™ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃñºëOÇ™í∑Ç∑Ǩǃ "Preferences" ÇΔǢǧïîï™Ç™ç≈å„ÇÃï∂éöóÒÇ…Ç»ÇÁǻǢèÍçáÇèúÇ´ÅAè»ó™ÇÕîÇØÇÈÇ◊Ç´Ç≈Ç∑ÅBDZÇÍÇÉ^ÉCÉvÇ∑ÇÈÇÃÇÕàÍìxÇæÇØÇ»ÇÃÇ≈ (ǮǪÇÁÇ≠ 'STR#' ÉäÉ\Å[ÉXì‡Ç…)ÅAñºëOÇ™í∑Ç≠ǃLJñ‚ëËÇ…Ç»ÇÈDZÇΔÇÕǻǢÇÕÇ∏Ç≈Ç∑ÅB

Å@

ê›íËÉtÉ@ÉCÉãÇÕǫDZDžíuÇ´Ç‹Ç∑Ç©ÅB

ä»íPÇ»ìöǶÇΔǵǃÇÕÅAFindFolder Ç÷ÇÃåƒÇ—èoǵÇ≈ï‘Ç≥ÇÍÇÈÅgèâä˙ê›íËÅhÉtÉHÉãÉ_ì‡ÇÃÇ–ÇΔǬNjÇΩÇÕï°êîÇÃÉtÉ@ÉCÉãÇ…ì¸ÇÍǃÇ≠ÇæÇ≥Ç¢ÅB

ê›íËÉtÉ@ÉCÉãǙǖÇΔǬǵǩǻǢèÍçáÇÕÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_ (FindFolder Ç©ÇÁï‘Ç≥ÇÍÇÈ) Ç…ì¸ÇÍǃÇ≠ÇæÇ≥Ç¢ÅBê›íËÉtÉ@ÉCÉãÇ™ï°êîÇÃèÍçáÇ‚ÅAÉçÉOÉtÉ@ÉCÉãǻǫÅgèâä˙ê›íËÅhÉtÉHÉãÉ_Ç…ì¸ÇÍÇΩÇ¢ëºÇÃÉtÉ@ÉCÉãǙdžÇÈèÍçáÇÕÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_ì‡Ç…ÉtÉHÉãÉ_ÇçÏê¨ÇµÇƒÅAǪDZDžÇ∑Ç◊ǃÇÃÉtÉ@ÉCÉãÇï€ë∂ǵNjÇ∑ÅBǪǧÇ∑ÇÍÇŒÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_ÇÃíÜÇêÆóùÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ï°êîÇÃê›íËÉtÉ@ÉCÉãÇïKóvÇΔÇ∑ÇÈèÍçáÇÕÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_ì‡Ç…êVãKÉtÉHÉãÉ_ÇçÏê¨ÇµÅAê›íËÉtÉ@ÉCÉãÇǪÇÃí«â¡ÇµÇΩÉtÉHÉãÉ_Ç…ì¸ÇÍÇÈÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ÅBǵǩǵÅAdžÇÁljÇÈÉtÉ@ÉCÉãÇÅgèâä˙ê›íËÅhÉtÉHÉãÉ_ì‡ÇÃäKëwÇ…ï€ë∂Ç∑ÇÈÇÃÇ™Ç∑Ç◊ǃÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ÇΔǡǃç≈ó«ÇÃï˚ñ@ÇΔǢǧÇÌÇØÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBó·Ç¶ÇŒÅAï°êîÉÜÅ[ÉUÇ™ëŒè€Ç…Ç»ÇÈèÍçáÅAëΩÇ≠ÇÃÉtÉ@ÉCÉãÇìØÇ∂Ågèâä˙ê›íËÅhÉtÉHÉãÉ_Ç…ì¸ÇÍÇÈÇÃÇ≈ÇÕÇ»Ç≠ÅAäeÉÜÅ[ÉUå¬êlÇÃÉtÉHÉãÉ_Ç…ê›íËÉtÉ@ÉCÉãÇï€ë∂ǵÇΩÇ¢èÍçáLJdžÇÈÇ≈ǵÇÂǧÅB

Å@

ê›íËÉtÉ@ÉCÉãÇ…ÇÕÇ«ÇÒÇ»ÉtÉ@ÉCÉãÉ^ÉCÉvÇΔÉNÉäÉGÅ[É^ÇégǧÇ◊Ç´Ç≈Ç∑Ç©ÅB

ÉtÉ@ÉCÉãÉ^ÉCÉvDžǬǢǃ

ê›íËÉtÉ@ÉCÉãÇÃÉtÉ@ÉCÉãÉ^ÉCÉvÇÕ 'pref' Ç…Ç∑ÇÈÇÃÇ™ÇÊÇ¢Ç≈ǵÇÂǧÅBDZÇÃÉ^ÉCÉvÇégǧÇΔÅAFinder ÇÃè´óàÇÃÉoÅ[ÉWÉáÉìÇ™ê›íËÉtÉ@ÉCÉãÇÅgèâä˙ê›íËÅhÉtÉHÉãÉ_Ç©ÇÁé©ìÆìIÇ…îFéØÇµÇ‹Ç∑ÅB'pref' ÇΔǢǧÉtÉ@ÉCÉãÉ^ÉCÉvÇégǧÇ◊Ç´Ç≈ÇÕǻǢóùóRÇΔǵǃévǢǬÇ≠ÇÃÇÕÅADZÇÃÉtÉ@ÉCÉãÉ^ÉCÉvÇégǧÇΔéüÇÃÇÊǧǻ Finder ÇÃÉoÉãÅ[ÉìÉwÉãÉvÉÅÉbÉZÅ[ÉWÇ™èoǃǵNjǧDZÇΔÇæÇØÇ≈Ç∑ÅB

Finder ÇÃê›íËÉtÉ@ÉCÉã
DZÇÃÉtÉ@ÉCÉãÇ…ÇÕ Finder ÇÃê›íËÇ™ï€ë∂Ç≥ÇÍǃǢNjÇ∑ÅB

ÇŸÇΔÇÒÇ«Ç∑Ç◊ǃÇÃê›íËÉtÉ@ÉCÉãÇ™ 'pref' ÇÃÉ^ÉCÉvÇéùǡǃǢÇÈÇΩÇflÅADZÇÍÇ≈ÇÕÉÜÅ[ÉUÇ™ç¨óêǵǃǵNjǢNjÇ∑ÅBDTS Ç≈ÇÕÅAÉAÉbÉvÉãÇÃÉGÉìÉWÉjÉAÉäÉìÉOïîñÂÇ™ Finder ÇèCê≥Ç∑Ç◊Ç´ÇæÇΔçlǶǃǢNjÇ∑ÅBÇÌÇÍÇÌÇÍÇÕDZÇÃñ‚ëËDžǬǢǃÉoÉOÉåÉ|Å[ÉgÇíÒèoǵNjǵÇΩ (ID ÇÕ 2241857)ÅB

Ågèâä˙ê›íËÅhÉtÉHÉãÉ_ (Ç‹ÇΩÇÕÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_ì‡ÇÃÉtÉHÉãÉ_) Ç…ê›íËÉtÉ@ÉCÉãÇÃëºÇ…ï€ë∂Ç∑ÇÈÉtÉ@ÉCÉãǙdžÇÈèÍçáÇÕÅAîCà”ÇÃÉ^ÉCÉvÇégǡǃǩNjǢNjÇπÇÒÅBó·Ç¶ÇŒÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_Ç…ÉçÉOÉtÉ@ÉCÉãÇì¸ÇÍÇÈèÍçáÅA'TEXT' É^ÉCÉvÇ…Ç∑ÇÈÇÃÇ™ç≈LJìKêÿÇ≈ǵÇÂǧÅBê›íËÉtÉ@ÉCÉãÇ≈Ç»Ç≠ÅAäJǢǃLJëÂè‰ïvÇæÇΔǢǧDZÇΔÇ™ÇÌÇ©ÇÈÇ©ÇÁÇ≈Ç∑ÅB

ǬNjÇËÅAê›íËÉtÉ@ÉCÉãÇ≈džÇÍÇŒÉ^ÉCÉvÇÕ 'pref' Ç…Ç∑ÇÈÇ◊Ç´Ç≈Ç∑ÅBê›íËÉtÉ@ÉCÉãÇ≈Ç»ÇØÇÍÇŒÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_Ç…ï€ë∂Ç∑ÇÈÉtÉ@ÉCÉãÇ≈LJ 'pref' É^ÉCÉvDžǵǃÇÕÇ¢ÇØÇ‹ÇπÇÒÅB

ÉNÉäÉGÅ[É^ÉRÅ[ÉhDžǬǢǃ

DZÇÃñ‚ëËDžǬǢǃÇÕ 3 ǬÇÃê‡Ç™Ç†ÇËÇ‹Ç∑ÅBç≈èâÇÃê‡ÇÕÅAê›íËÉtÉ@ÉCÉãÇ…ÇÕÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉÇ…àÍívÇ∑ÇÈÉNÉäÉGÅ[É^ÉRÅ[ÉhÇïtÇØÇÈÇ◊Ç´ÇæÇΔǢǧLJÇÃÅB2 î‘ñ⁄ÇÕÅA'????' ÇΔǢǧÉNÉäÉGÅ[É^ÇïtÇØÇÈÇ◊Ç´ÇæÇΔǢǧLJÇÃÅB3 î‘ñ⁄ÇÕ '????' Ç≈LJǻÇ≠ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉÇ≈LJǻǢÅAÉNÉäÉGÅ[É^ÉRÅ[Éh (ìoò^Ç≥ÇÍÇΩLJÇÃ) ÇïtÇØÇÈÇ◊Ç´ÇæÇΔǢǧLJÇÃÇ≈Ç∑ÅB

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉNÉäÉGÅ[É^ÉRÅ[ÉhÇégópÇ∑ÇÈèÍçá

ê›íËÉtÉ@ÉCÉãÇ…ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉÇΔìØÇ∂ÉNÉäÉGÅ[É^Çó^ǶÇÈÇΔǢǧDZÇΔÇ…ÇÕÅAéüÇÃÇÊǧǻLJǡÇΔLJǻóùóRǙdžÇËÇ‹Ç∑ (èáïsìØ)ÅB

  • ÉÜÅ[ÉUÇ™ÉtÉ@ÉCÉãñºÇïœçXǵÇΩèÍçáÇ≈LJÅAÉNÉäÉGÅ[É^ÉRÅ[ÉhÇ…ÇÊǡǃä»íPÇ…ê›íËÉtÉ@ÉCÉãÇíTÇ∑DZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
  • ÅuêeÇÃǻǢÅvê›íËÉtÉ@ÉCÉãÇçÌèúÇ∑ÇÈÉÜÅ[ÉeÉBÉäÉeÉBÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÅAǪÇÃÉtÉ@ÉCÉãǙǫÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ïtëÆÇµÇƒÇ¢ÇÈǩǙÇÌÇ©ÇËÇ‹Ç∑ÅB
  • ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÉçÅ[ÉJÉâÉCÉYǵǃLJÉNÉäÉGÅ[É^ÉRÅ[ÉhÇÕïœÇÌÇÁǻǢÇΩÇflÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÉRÅ[ÉhÇÕê›íËÉtÉ@ÉCÉãÇÃñºëOÇímÇÈïKóvǙǻÇ≠ÅAÉçÅ[ÉJÉâÉCÉYÇ™ä»íPÇ…Ç»ÇËÇ‹Ç∑ÅB

ÇΔDZÇÎÇ™ÅAéüÇÃÇÊǧDžÅAê›íËÉtÉ@ÉCÉãÇÃÉNÉäÉGÅ[É^ÉRÅ[ÉhÇΔǵǃÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉÇégÇÌǻǢï˚Ç™ÇÊÇ¢óùóRLJdžÇËÇ‹Ç∑ÅB

  • ÉÜÅ[ÉUÇ™ê›íËÉtÉ@ÉCÉãÇäJÇ≠ÇΔÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ãNìÆÇµÇ‹Ç∑ÅBDZÇÃèÍçáÉAÉvÉäÉPÅ[ÉVÉáÉìë§Ç≈ÇÕDZÇÍÇ…ëŒâûǵǃâΩÇÁÇ©ÇÃèàóùÇǵǻÇ≠ǃÇÕÇ»ÇËÇ‹ÇπÇÒÅBDZÇÍDžǬǢǃÇÕå„Ç≈ê‡ñæÇµÇ‹Ç∑ÅB

'????' ÇÃÉNÉäÉGÅ[É^ÉRÅ[ÉhÇégópÇ∑ÇÈèÍçá

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉNÉäÉGÅ[É^ÉRÅ[ÉhÇégÇÌǻǢÇ≈ÅA'????' ÇégǧDZÇΔÇÕéüÇÃÇÊǧǻóòì_ǙdžÇËÇ‹Ç∑ÅB

  • ÉtÉ@ÉCÉãÇñºëOÇ≈íTÇ∑ÇÃÇ™îÒèÌÇ…ä»íPÇ≈Ç∑ (DZDZÇÉNÉäÉbÉNÇ∑ÇÈÇΔDZÇÍÇé¶Ç∑ÉRÅ[ÉhÇÃífï–Ç…ÉWÉÉÉìÉvǵNjÇ∑)ÅB
  • '????' ÇÉNÉäÉGÅ[É^ÉRÅ[ÉhÇΔǵǃìoò^Ç∑ÇÈïKóvǙdžÇËÇ‹ÇπÇÒÅB(é¿ç€Ç…ÇÕìoò^Ç≈Ç´Ç‹ÇπÇÒÅBÇ«ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìDžLJëÆÇ≥ǻǢÉVÉOÉlÉ`ÉÉÇΔǵǃñæämÇ…íËã`Ç≥ÇÍǃǢNjÇ∑ÅB)
  • ÉÜÅ[ÉUÇ™ê›íËÉtÉ@ÉCÉãÇäJDZǧÇΔǵǃLJÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕãNìÆÇ≥ÇÍÇ‹ÇπÇÒÅB
  • ÉÜÅ[ÉUÇ…ê›íËÉtÉ@ÉCÉãÇ™äJÇØÇ»Ç¢óùóRÇì`ǶÇÈÇΩÇflÅuÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™å©Ç¬Ç©ÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅvÉÅÉbÉZÅ[ÉWï∂éöóÒÇéwíËÇ≈Ç´Ç‹Ç∑ÅB

ǵǩǵÅA'????' ÇΔǢǧÉNÉäÉGÅ[É^ÉRÅ[ÉhÇégǧÇΔéüÇÃÇÊǧǻïsìsçáLJdžÇËÇ‹Ç∑ÅB

  • ê›íËÉtÉ@ÉCÉãÇñºëOÇ≈íTÇ≥Ç»ÇØÇÍnjǻÇÁÇ∏ÅAÉçÅ[ÉJÉâÉCÉYÇÃç€Ç…ñ‚ëËÇΔÇ»ÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅB
  • ÉÜÅ[ÉeÉBÉäÉeÉBÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÅAÉÜÅ[ÉUÇÃÉVÉXÉeÉÄDžLJǧë∂ç›ÇµÇ»Ç¢ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃê›íËÉtÉ@ÉCÉãÇ™écǡǃǢÇÈDZÇΔÇåxçêǵÅAÉÜÅ[ÉUǙǪÇÃÉtÉ@ÉCÉãÇçÌèúǵǃǵNjǧâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅBãtÇ…ÅAìØÇ∂ÇÊǧǻÉÜÅ[ÉeÉBÉäÉeÉBÇ™ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™çÌèúÇ≥ÇÍÇΩDžLJǩǩÇÌÇÁÇ∏ÅAê›íËÉtÉ@ÉCÉãÇè¡Ç≥Ç∏Ç…écǵǃǵNjǧDZÇΔLJdžÇËÇ‹Ç∑ÅB
  • '????' ÇÃÉNÉäÉGÅ[É^ÉRÅ[ÉhÇégǧÇΔÅAìØÇ∂ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇéùǬÉtÉ@ÉCÉãÇ™ï°êîdžÇÈÇΩÇflÅAÉNÉäÉGÅ[É^ÉRÅ[ÉhÇ…ÇÊǡǃê›íËÉtÉ@ÉCÉãÇÃèÍèäÇíTÇ∑DZÇΔÇ™Ç≈Ç´Ç»Ç≠Ç»ÇËÇ‹Ç∑ÅB

àŸÇ»ÇÈÉNÉäÉGÅ[É^ÉRÅ[ÉhÇégǧèÍçá

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉÇ≈LJ '????' Ç≈LJǻǢÉNÉäÉGÅ[É^ÉRÅ[ÉhÇégǧDZÇΔÇ…ÇÕÅAéüÇÃÇÊǧǻóòì_ǙdžÇËÇ‹Ç∑ÅB

  • ëºÇ≈ÇÕégÇÌÇÍǃǢǻǢÉNÉäÉGÅ[É^ÉRÅ[ÉhÇïtÇØÇÈDZÇΔÇ≈ÅAìñëRÅAê›íËÉtÉ@ÉCÉãÇä»íPÇ…íTÇ∑DZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
  • ÉNÉäÉGÅ[É^ÉRÅ[ÉhDžǬǢǃÇÕÅAÉçÅ[ÉJÉâÉCÉYÇÃñ‚ëËÇÕãNDZÇËÇ‹ÇπÇÒÅB
  • ÉÜÅ[ÉUÇ™ê›íËÉtÉ@ÉCÉãÇäJDZǧÇΔǵǃLJÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕãNìÆÇ≥ÇÍÇ‹ÇπÇÒÅB
  • ÅuÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™å©Ç¬Ç©ÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅvÉÅÉbÉZÅ[ÉWÇÃï∂éöóÒÇéwíËǵǃÅAÉÜÅ[ÉUÇ…ê›íËÉtÉ@ÉCÉãÇ™äJÇØÇ»Ç¢óùóRÇì`ǶÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

ǵǩǵÅADZÇÃï˚ñ@Ç…ÇÕëºÇÃèÍçáÇΔÇÕëΩè≠àŸÇ»ÇÈéüÇÃÇÊǧǻïsìsçáǙdžÇËÇ‹Ç∑ÅB

  • ëºÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇΔÇÃÉRÉìÉtÉäÉNÉgÇîÇØÇÈÇΩÇflÅAê›íËÉtÉ@ÉCÉãÇÃÉNÉäÉGÅ[É^ÉRÅ[ÉhÇ 2 î‘ñ⁄ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÉVÉOÉlÉ`ÉÉÇΔǵǃìoò^Ç∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
  • ëOó·ÇΔìØólÅAÉÜÅ[ÉeÉBÉäÉeÉBÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™êeÇÃǻǢê›íËÉtÉ@ÉCÉãÇΔîFéØÇµÇ‹Ç∑ÅB

íçà”: DZÇà TECHNOTE ÇÃç≈å„Ç…ÅAÉNÉäÉGÅ[É^ÉRÅ[ÉhÇ©ÉtÉ@ÉCÉãñº (Ç‹ÇΩÇÕǪÇÃóºï˚) Ç≈ê›íËÉtÉ@ÉCÉãÇíTÇ∑ï˚ñ@Çé¶Ç∑ÉRÅ[ÉhÇåfç⁄ǵNjǵÇΩÅBDZÇÍÇäÓDžǵǃé©ï™Ç≈åüçıÉRÅ[ÉhÇçÏê¨Ç∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

ê›íËÇÃÉçÅ[ÉJÉâÉCÉYDžǬǢǃ

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™åªç›ìÆçÏǵǃǢÇÈÉVÉXÉeÉÄÇΔÇÕà·Ç§åæåÍÉRÅ[ÉhÇ≈çÏê¨Ç≥ÇÍÇΩê›íËÉtÉ@ÉCÉãÇÉÜÅ[ÉUÇ™égópÇ∑ÇÈâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅBó·Ç¶ÇŒÅAïƒçëêlÇÃÉÜÅ[ÉUÇ™ì˙ñ{êlÇÃìØóªÇ…ê›íËÉtÉ@ÉCÉãÇëóÇÈDZÇΔǙdžÇËÇ‹Ç∑ÅB

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÉtÉ@ÉCÉãñºÇ≈Ç»Ç≠ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇ≈ê›íËÉtÉ@ÉCÉãÇíTÇ∑ÇÊǧDžǻǡǃǢÇÍÇŒÅAì˙ñ{ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇΔïƒçëÇ≈ñºëOÇïtÇØÇΩê›íËÉtÉ@ÉCÉãÇÃëgÇ›çáÇÌÇπÇ≈LJÉÜÅ[ÉUÇÃä˙ë“í ÇËìÆçÏǵNjÇ∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ê›íËÉtÉ@ÉCÉãÇèÌÇ…ñºëOÇ≈äJÇ¢ÇΩÇËÅAñºëOÇ™ì¡íËÇÃï∂éöóÒÇ≈džÇÈDZÇΔÇëzíËǵǃǢÇÈèÍçáÇÕÅAê›íËÉtÉ@ÉCÉãÇíPèÉÇ…ÉRÉsÅ[Ç∑ÇÈDZÇΔÇÕÇ≈Ç´Ç‹ÇπÇÒÅBÉÜÅ[ÉUÇ™ê›íËÉtÉ@ÉCÉãÇÃÉRÉsÅ[ÇçÏÇËÅAï°êîÇÃê›íËÉtÉ@ÉCÉãä‘Ç≈Ç∑njǂÇ≠êÿÇËë÷ǶÇçsǧÇÊǧǻDZÇΔǙǵDžÇ≠Ç≠Ç»ÇËÇ‹Ç∑ÅB

ÅuÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™å©Ç¬Ç©ÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅvÉÅÉbÉZÅ[ÉWDžǬǢǃ

ÅuÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™å©Ç¬Ç©ÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅvÉÅÉbÉZÅ[ÉWÇÃï∂éöóÒÇÕ 'STR ' ÉäÉ\Å[ÉX ID -16397 ÇΔǵǃÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™çÏê¨Ç∑ÇÈÉtÉ@ÉCÉãÇ…ì¸ÇÍǃǮÇ≠ÇΔÅAFinder ǙǪÇÃÉtÉ@ÉCÉãÇ™äJÇØÇ»Ç¢óùóRÇÉÜÅ[ÉUÇ…ì`ǶÇÈÇΩÇflÇ…égópǵNjÇ∑ÅBDZÇÃÉÅÉbÉZÅ[ÉWÇ…ÇÕÅAǪÇÃÉtÉ@ÉCÉãÇçÏê¨ÇµÇΩÉAÉvÉäÉPÅ[ÉVÉáÉìñºÇΔÅAǪÇÃÉtÉ@ÉCÉãÇÃñ⁄ìIÇÉÜÅ[ÉUÇ…ì`ǶÇÈLJÇÃÇ≈Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBDZÇÃï∂éöóÒÇÕÅAê›íËÉtÉ@ÉCÉã (ëºÇÃÉtÉ@ÉCÉãLJìØól) Ç…ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉÇΔÇÕà·Ç§ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇó^ǶÇÈèÍçáÇ…égópÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBDZǧǵǃÅAÉÜÅ[ÉUÇ™ê›íËÉtÉ@ÉCÉãÇäJDZǧÇΔÇ∑ÇÈÇΔéüÇÃÇÊǧǻÉÅÉbÉZÅ[ÉWÇ™ï\é¶Ç≥ÇÍÇ‹Ç∑ÅB

ÅuDZÇÃÉtÉ@ÉCÉãÇ…ÇÕ SurfWriter ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉÜÅ[ÉUê›íËÇ™ãLèqÇ≥ÇÍǃǢNjÇ∑ÅBDZÇÃÉtÉ@ÉCÉãÇäJÇ¢ÇΩÇËàÛç¸Ç∑ÇÈDZÇΔÇÕÇ≈Ç´Ç‹ÇπÇÒÅBDZÇÃÉtÉ@ÉCÉãÇóLå¯Ç…Ç∑ÇÈÇ…ÇÕÅAÉVÉXÉeÉÄÉtÉHÉãÉ_ì‡ÇÃÅgèâä˙ê›íËÅhÉtÉHÉãÉ_Ç…ï€ë∂Ç∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBÅv

Åuë∂ç›ÇµÇ»Ç¢ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃñºëOÅvÇï\Ç∑ï∂éöóÒÅA'STR ' ÉäÉ\Å[ÉX ID -16396 LJdžÇËÇ‹Ç∑ÅBDZÇÃÉäÉ\Å[ÉXÇÕǪÇÃÉtÉ@ÉCÉãÇçÏê¨ÇµÇΩÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃñºëO (ó·Ç¶ÇŒÅhSurfWriterÅh) Ç≈Ç∑ÅBdžÇÈÉtÉ@ÉCÉãÇçÏê¨ÇµÇΩÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™å©Ç¬Ç©ÇÁǻǢÇΔÇ´ÅAÉÜÅ[ÉUÇ…Ç«ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ©Çì`ǶÇÈÇΩÇflÇ… Finder Ç™égǢNjÇ∑ÅBí èÌÅADZÇÃï∂éöóÒÇÕÉÜÅ[ÉUÇ™äJÇ≠â¬î\ê´ÇÃdžÇÈÉtÉ@ÉCÉãÇ…ëŒÇµÇƒÇÃÇ›égÇÌÇÍÇ‹Ç∑ÅB

èdóv: ÅuÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™å©Ç¬Ç©ÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅvÉÅÉbÉZÅ[ÉWï∂éöóÒÇΔÅuë∂ç›ÇµÇ»Ç¢ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃñºëOÅvï∂éöóÒÇÃóºï˚ÇégópǵǃÇÕÇ¢ÇØÇ‹ÇπÇÒÅBÇ«ÇøÇÁǩǖÇΔǬÇégǡǃÇ≠ÇæÇ≥Ç¢ÅBÅuÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™å©Ç¬Ç©ÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅvÉÅÉbÉZÅ[ÉWÇÃè⁄ç◊DžǬǢǃÇÕÅwInside Macintosh: Macintosh Toolbox EssentialsÅxÇÃëÊ 7 èÕÅuFinder Interface, using the Finder Interface Displaying Messages When the Finder Can't Find Your ApplicationÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

Å@

ê›íËÉtÉ@ÉCÉãÇÕǫǧǂǡǃå©Ç¬ÇØÇ‹Ç∑Ç©ÅB

ñºëOÇ≈ê›íËÉtÉ@ÉCÉãÇå©Ç¬ÇØÇÈÇÃÇÕÇΔǃLJä»íPÇ≈Ç∑ÅBǪDZDždžÇÈǩǻǢǩÇÃñ‚ëËÇæÇ©ÇÁÇ≈Ç∑ÅBÉNÉäÉGÅ[É^ÉRÅ[ÉhÇ≈ê›íËÉtÉ@ÉCÉãÇå©Ç¬ÇØÇÈèÍçáÇÕÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_ëSëÃÇ©ÇÁê≥ǵǢÉ^ÉCÉvÇÃÉtÉ@ÉCÉãÇíTÇ∑ïKóvǙdžÇËÇ‹Ç∑ÅBìØÇ∂ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇéùǬï°êîÉtÉ@ÉCÉãÇ™å©Ç¬Ç©Ç¡ÇΩèÍçáÇÕÅAñºëOLJÉ`ÉFÉbÉNÇ∑ÇÈïKóvǙdžÇÈÇ≈ǵÇÂǧÅBÉNÉäÉGÅ[É^ÉRÅ[ÉhÇ™ '????' ÇÃèÍçáǙDZÇÍÇ…äYìñǵNjÇ∑ÅB

ì¡íËÇÃÉNÉäÉGÅ[É^ÉRÅ[ÉhÇéùǬÉtÉ@ÉCÉãÇíTÇ∑Ç…ÇÕÅAPBHGetFInfo Ç…ÉCÉìÉfÉbÉNÉXÇéwíËǵǃåƒÇ—èoǵÅAÉfÉBÉåÉNÉgÉäì‡ÇÃäeÉtÉ@ÉCÉãDžǬǢǃÇà Finder èÓïÒÇéÊìæÇµÇƒÇ≠ÇæÇ≥Ç¢ÅBPBHGetFInfo Ç÷ÇÃäeåƒÇ—èoǵÇÃå„ÅAÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇà ioDirID ÉtÉBÅ[ÉãÉhÇçƒê›íËÇµÇ»ÇØÇÍnjǻÇÁǻǢDZÇΔÇäoǶǃǮǢǃÇ≠ÇæÇ≥Ç¢ÅBPBHGetFInfo ǙDZÇÃÉtÉBÅ[ÉãÉhÇÃílÇïœçXÇ∑ÇÈÇ©ÇÁÇ≈Ç∑ÅB

Å@

ê›íËÉtÉ@ÉCÉãÇ…ÇÕ 'vers' ÉäÉ\Å[ÉXÇä‹ÇflÇÈÇ◊Ç´Ç≈Ç∑Ç©ÅB

ÇÕÇ¢ÅAä‹ÇflÇ»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇç\ê¨Ç∑ÇÈÉtÉ@ÉCÉãÇÕÇ∑Ç◊ǃÅAID 1 Ç®ÇÊÇ— 2 Çà 'vers' ÉäÉ\Å[ÉXÇéùÇΩÇ»ÇØÇÍnjǻÇÁÇ∏ÅAìñëRÅAê›íËÉtÉ@ÉCÉãLJó·äOÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅB

'vers' ÉäÉ\Å[ÉXÇÃíºê⁄ÇÃóòì_ÇÕÅAFinder ÇÃÅgèÓïÒÇå©ÇÈÅhÉ_ÉCÉAÉçÉOÇ©ÇÁÉÜÅ[ÉUÇ™ÇÊÇËäÆëSÇ»èÓïÒÇìæÇÈDZÇΔÇ™Ç≈Ç´ÇÈDZÇΔÇ≈Ç∑ÅBÉ_ÉCÉAÉçÉOÇ…ÇÕǪÇÃÉtÉ@ÉCÉãÇ™ëÆÇ∑ÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìñºÇΔÉoÅ[ÉWÉáÉìÇ™ï\é¶Ç≥ÇÍÇ‹Ç∑ÅB'vers' ÇÃëºÇÃóòì_ÇÕÅAÉvÉçÉOÉâÉÄÇÃêVÉoÅ[ÉWÉáÉìÇ™å√Ç¢ê›íËÉtÉ@ÉCÉãÇÃÉoÅ[ÉWÉáÉìÇîFéØÇµÇƒêVǵǢèëéÆÇ…ïœä∑Ç∑ÇÈç€Ç…ï÷óòÇæÇΔǢǧDZÇΔÇ≈Ç∑ÅB

Å@

ê›íËÉtÉ@ÉCÉãÇ…ê≥ǵǢÉAÉCÉRÉìÇä÷òAïtÇØÇÈÇ…ÇÕǫǧǵÇΩÇÁÇÊÇ¢Ç≈ǵÇÂǧÅB

DZÇÍÇÕä»íPÇ≈Ç∑ÅBê›íËÉtÉ@ÉCÉãÇ… 'pref' ÇÃÉ^ÉCÉvÇó^ǶÇÍÇŒÅAé©ìÆìIÇ…ê≥ǵǢÉAÉCÉRÉì (ê›íËÉtÉ@ÉCÉãÇÃÉfÉtÉHÉãÉgÉAÉCÉRÉì) Ç™ïtÇ´Ç‹Ç∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉoÉìÉhÉãÉäÉ\Å[ÉXÇ… 'pref' ÉGÉìÉgÉäÇçÏê¨ÇµÇƒÇÕÇ¢ÇØÇ‹ÇπÇÒÅBê›íËÉtÉ@ÉCÉãÇ…îƒópÉAÉCÉRÉìÇó^ǶÇÈÇΔÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_Ç™äJÇ≠ÇÃÇ™Ç∏Ç¡ÇΔë¨Ç≠Ç»ÇËÇ‹Ç∑ÅB

ê›íËÉtÉ@ÉCÉãÇ…îƒópÇ≈ÇÕǻǢÉAÉCÉRÉì (ÉJÉXÉ^ÉÄÉAÉCÉRÉì) ÇéùÇΩÇπÇÈDZÇΔÇÕÇ®Ç∑Ç∑ÇflǵNjÇπÇÒÅBǵǩǵÅAÉJÉXÉ^ÉÄÉAÉCÉRÉìÇégÇ¢ÇΩǢǻÇÁÇŒÅAFinder ÉJÉXÉ^ÉÄÉAÉCÉRÉìÇégǡǃÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™çÌèúÇ≥ÇÍǃLJê›íËÉtÉ@ÉCÉãÇ™ÉAÉCÉRÉìÇéùǬÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ÅBÉÜÅ[ÉUÇ™ê›íËÉtÉ@ÉCÉãÇçÌèúǵǃLJǩNjÇÌǻǢǩÇîªífÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBFinder ÉJÉXÉ^ÉÄÉAÉCÉRÉìÇégópÇ∑ÇÈï ÇÃóùóRÇÕÅAFinder ÇÕèÍèäÇÃÇÌǩǡǃǢÇÈ 1 å¬ÇÃÉtÉ@ÉCÉã (ê›íËÉtÉ@ÉCÉã) ÇäJÇ´Ç≥ǶÇ∑ÇÍÇŒÇÊÇ≠ÅAÇ∑Ç◊ǃÇÃÉ{ÉäÉÖÅ[ÉÄè„ÇÃÉfÉXÉNÉgÉbÉvÉfÅ[É^ÉxÅ[ÉXÇíTÇ∑ïKóvǙǻÇ≠Ç»ÇÈÇ©ÇÁÇ≈Ç∑ÅBApple Remote Access Çí Ç∂ǃÉ}ÉEÉìÉgÇ≥ÇÍǃǢÇÈ AppleShare ÇÃÉ{ÉäÉÖÅ[ÉÄǙdžÇÈÇΔîÒèÌÇ…íxÇ≠ǻǡǃǵNjǢNjÇ∑ÅB

Finder ÉJÉXÉ^ÉÄÉAÉCÉRÉìÇÃçÏê¨ï˚ñ@DžǬǢǃÇÕÅwInside Macintosh: Macintosh Toolbox EssentialsÅxÇÃëÊ 7 èÕÅuFinder Interface, using the Finder Interface, Creating Customized Document IconsÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

Å@

ÉÜÅ[ÉUÇ™ê›íËÉtÉ@ÉCÉãÇÉ_ÉuÉãÉNÉäÉbÉNǵÇΩÇÁǫǧǵNjÇ∑Ç©ÅB

DZÇÍÇÕÅAê›íËÉtÉ@ÉCÉãÇ…ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉÇΔìØÇ∂ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇó^ǶǃǢÇÈèÍçáÇ…ÇæÇØãNDZÇÈñ‚ëËÇ≈Ç∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ê›íËÉtÉ@ÉCÉãÇäJÇ≠ÇÊǧãÅÇflÇÁÇÍÇΩÇΔǴDžǫǧÇ∑ÇÈǩDžǬǢǃÇÕÅAéüÇÃÇÊǧǻîªífÇ™â¬î\Ç≈Ç∑ÅB

  1. ê›íËÉtÉ@ÉCÉãÇÕäJÇ≠DZÇΔÇ™Ç≈ǴǻǢÇΔǢǧÉ_ÉCÉAÉçÉOÇï\é¶Ç∑ÇÈÅB
    • ê›íËÉtÉ@ÉCÉãÇäJÇ≠DZÇΔÇ™Ç≈ǴǻǢÇΔǢǧÉ_ÉCÉAÉçÉOÇèoÇ∑DZÇΔÇ≈ÅAÉÜÅ[ÉUÇÕÉAÉvÉäÉPÅ[ÉVÉáÉìÇãNìÆÇµÇΩǬLJÇËÇæÇ¡ÇΩÇ™ÅAé©ï™Ç™ÅuäJÇ¢ÇΩÅvÇÃÇ™âΩÇÃÉtÉ@ÉCÉãÇæÇ¡ÇΩÇÃÇ©ÇóùâǵNjÇ∑ÅB
    • ÉÜÅ[ÉUÇ…ÇÊǡǃÇÕDZÇÃÇÊǧǻÉ_ÉCÉAÉçÉOÇ≈ç¨óêÇ∑ÇÈêlLJǢNjÇ∑ÅB
  2. ê›íËÉ_ÉCÉAÉçÉOÇäJÇ≠ÅB
    • ê›íËÉ_ÉCÉAÉçÉOÇäJÇ≠ÇΔǢǧÇÃÇÕëfê∞ÇÁǵǢçlǶÇ≈ÅAMac Ç…ÇΔǃLJǔÇ≥ÇÌǵÇ≠évÇÌÇÍÇ‹Ç∑Ç™ÅAâåàÇµÇ»ÇØÇÍnjǻÇÁǻǢéüÇÃÇÊǧǻñ‚ëËLJdžÇËÅAǪÇÍÇÕDZÇà TECHNOTE ÇÃÇÊǧǻàÍî ñ⁄ìIÇÃï∂èëÇÃògÇí¥Ç¶ÇÈLJÇÃÇ≈Ç∑ÅB
      • Ç«ÇÃÉtÉ@ÉCÉãÇ©ÇÁê›íËílÇà¯Ç´èoÇ∑Ç©ÅBåªç›ÇÃÉtÉ@ÉCÉãÇ©ÇÁÇ©ÅAǪÇÍÇΔLJêVǵÇ≠äJÇ¢ÇΩÉtÉ@ÉCÉãÇ©ÇÁÇ©ÅB
      • ÉÜÅ[ÉUÇ™ÅuOKÅvÇÉNÉäÉbÉNǵÇΩÇΔÇ´ïœçXÇǫDZDžï€ë∂Ç∑ÇÈÇÃÇ©ÅBä˘ë∂ÇÃê›íËÉtÉ@ÉCÉãÇ…ï€ë∂Ç∑ÇÈÇÃÇ©ÅAêVǵÇ≠äJÇ¢ÇΩê›íËÉtÉ@ÉCÉãÇ…Ç∑ÇÈÇÃÇ©ÅAǪÇÍÇΔLJóºï˚Ç©ÅB
      • êVǵÇ≠äJÇ¢ÇΩê›íËÉtÉ@ÉCÉãÇ™ÉTÅ[ÉoDždžǡǃÅAèëÇ´çûǛǙÇ≈ǴǻǢèÍçáÇÕǫǧÇ∑ÇÈÇ©ÅB
      • ÉtÉ@ÉCÉãÇ…ï€ë∂ǵÇΩê›íËÇÃÇ¢Ç≠ǬǩNjÇΩÇÕÇ∑Ç◊ǃǙñæé¶ìIÇ»É_ÉCÉAÉçÉOÇ≈ê›íËÇ≥ÇÍǻǩǡÇΩèÍçáÅAÉÜÅ[ÉUÇ…ê›íËÉtÉ@ÉCÉãÇ™ïœçXÇ≥ÇÍÇΩDZÇΔÇǫǧǂǡǃì`ǶÇÈÇ©ÅB
  3. âΩLJǵǻǢÅB
    • âΩLJǵǻǢDZÇΔÇ™ÉfÉxÉçÉbÉpÇ…Ç≈Ç´ÇÈàÍî‘ä»íPǻDZÇΔÇ≈Ç∑ÅB
    • ÉNÉâÉbÉVÉÖǵǃÇÕÇ¢ÇØÇ‹ÇπÇÒ (ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÅuï∂èëÇäJÇ≠ÅvÉAÉbÉvÉãÉCÉxÉìÉgÇÃÉnÉìÉhÉâÇ©ÇÁ 'pref' É^ÉCÉvÇÃÉtÉ@ÉCÉãÇéÊÇËèúÇ≠ïKóvǙdžÇËÇ‹Ç∑)ÅB
    • ǵǩǵDZÇÍÇÕÇ∑ÇÆÇÍÇΩÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉXÇΔÇÕǢǶNjÇπÇÒÅBÉÜÅ[ÉUÇ™ÉtÉ@ÉCÉãÇÉ_ÉuÉãÉNÉäÉbÉNǵÇΩDZÇΔÇä¥ímǵÇΩDZÇΔÇâΩÇÁÇ©ÇÃï˚ñ@Ç≈é¶Ç∑Ç◊Ç´Ç≈Ç∑ÅB

ÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉXÇÃñ‚ëËÇèúÇØÇŒÅAÇ«ÇÃï˚ñ@DžLJé¿ç€ÇÃïsìsçáÇÕdžÇËÇ‹ÇπÇÒÅBÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉXÇǫǧÇ∑ÇÈÇ©ÇÕÉfÉxÉçÉbÉpÇ™åàÇflǃÇ≠ÇæÇ≥Ç¢ (ÉAÉbÉvÉãÇ…ÇÕDZÇÃåèÇ…ä÷Ç∑ÇÈåˆìIå©âÇÕdžÇËÇ‹ÇπÇÒ)ÅB

Å@

ê›íËÉtÉ@ÉCÉãÇ™ë∂ç›ÇµÇ»Ç¢èÍçáÇÕǫǧǵNjÇ∑Ç©ÅB

DZÇÍÇÕä»íPǪǧDžévǶNjÇ∑Ç™ÅA2 ǬÇÃà·Ç§à”å©Ç™Ç†ÇËÇ‹Ç∑ÅB

2 ǬÇÃà”å©ÇÕéüÇÃí ÇËÇ≈Ç∑ÅB

  1. ÉtÉ@ÉCÉãÇÕçÏê¨ÇµÇ»Ç¢ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃê›íËÇÕÇ∑Ç◊ǃÉfÉtÉHÉãÉgê›íËÇÃÉtÉ@ÉCÉãÇ™ë∂ç›Ç∑ÇÈÇÊǧDžê›íËÇ∑ÇÈÅBÉÜÅ[ÉUÇ™âΩÇ©ê›íËÇïœçXǵÇΩÇÁïœçXÇä‹Çfiê›íËÉtÉ@ÉCÉãÇçÏê¨Ç∑ÇÈÅB
  2. ê›íËÉtÉ@ÉCÉãÇçÏê¨ÇµÅAÉfÉtÉHÉãÉgÇÃílÇì¸ÇÍÇÈÅB

ç≈èâÇÃï˚ñ@ÇÃñæÇÁǩǻóòì_ÇÕÅAÉÜÅ[ÉUÇ™ê›íËÇÉfÉtÉHÉãÉgÇÃílÇ©ÇÁïœçXÇµÇ»ÇØÇÍÇŒÅAê›íËÉtÉ@ÉCÉãÇ™çÏê¨Ç≥ÇÍǻǢÇÃÇ≈ÉnÅ[ÉhÉfÉBÉXÉNÇ™è¡îÔÇ≥ÇÍǻǢÇΔǢǧDZÇΔÇ≈Ç∑ÅBÇ‹ÇΩÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÉCÉìÉXÉgÅ[ÉãǵǃÅAééǵÅAçÌèúÇ∑ÇÈDZÇΔÇ™ä»íPÇ…Ç≈Ç´ÅAÉVÉXÉeÉÄÇ©ÇÁêeÇÃǢǻÇ≠ǻǡÇΩÉtÉ@ÉCÉãÇíTÇ∑ïKóvǙdžÇËÇ‹ÇπÇÒÅBDZÇÃDZÇΔÇÕÅAÉ\ÉtÉgÉEÉFÉAÇÃééópî≈ÇîzïzÇ∑ÇÈÉfÉxÉçÉbÉpÇÃÇΩÇflÇ…ì¡ïMǵǃǮǴNjÇ∑ÅB

èÌÇ…ê›íËÉtÉ@ÉCÉãÇçÏê¨Ç∑ÇÈï˚Ç™è≠ÇµÇæÇØÉRÅ[ÉhÇÕä»íPÇ…Ç»ÇÈÇ≈ǵÇÂǧÅBÇΩÇæÅAê›íËÉtÉ@ÉCÉãÇ™çÏê¨Ç≈ǴǻǢèÍçáLJdžÇÈÇÌÇØÇ≈ÅAê›íËÉtÉ@ÉCÉãǻǵÇ≈LJÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ìÆçÏÇ≈Ç´ÇÈÇÊÇ§Ç…ÇµÇƒÇ®Ç©Ç»ÇØÇÍnjǻÇÁǻǢì_ÇÕìØÇ∂Ç≈Ç∑ÅBé¿ç€Ç…ïKóvÇ…Ç»ÇÈÇ‹Ç≈ê›íËÉtÉ@ÉCÉãÇÃçÏê¨ÇêÊâÑnjǵDžǵÇΩǟǧǙÇÊÇ¢Ç≈ǵÇÂǧÅB

ê›íËÉtÉ@ÉCÉãÇ™çÏê¨Ç≈ǴǻǢèÍçáÇΔǢǧÇÃÇÕÅAÇ–ÇΔǬDžÇÕÉ{ÉäÉÖÅ[ÉÄÇ‚ÉVÉXÉeÉÄÉtÉHÉãÉ_Ç™ÉçÉbÉNÇ≥ÇÍǃǢÇÈèÍçáÇ≈Ç∑ÅBDZÇÃèÍçáǫǧëŒèàÇ∑Ç◊ǴǩDžǬǢǃÇÕÅAéüÇÃÅuê›íËÉtÉ@ÉCÉãÇ…èëÇ´çûÇflǻǢèÍçáÇÕǫǧǵNjÇ∑Ç©ÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

ê›íËÉtÉ@ÉCÉãÇ‚ÉtÉHÉãÉ_Çï€ë∂ǵÇΩÇ¢èÍèäÇ…ÅAëºÇÃÉtÉ@ÉCÉãÇ‚ÉtÉHÉãÉ_Ç™Ç∑Ç≈Ç…ë∂ç›Ç∑ÇÈÇΔǢǧèÍçáLJdžÇËÇ‹Ç∑ÅBDZÇÃèÍçáǫǧëŒèàÇ∑Ç◊Ç´Ç©ÇÕÅuï ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇΔê›íËÉtÉ@ÉCÉãÇ™ÉRÉìÉtÉäÉNÉgÇãNDZǵÇΩÇÁǫǧǵNjÇ∑Ç©ÅvÇÃÉZÉNÉVÉáÉìÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

Å@

ê›íËÉtÉ@ÉCÉãÇ…èëÇ´çûÇflǻǢèÍçáÇÕǫǧǵNjÇ∑Ç©ÅB

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ê›íËÉtÉ@ÉCÉãÇÃï€ë∂Ç‹ÇΩÇÕçXêVÇ™Ç≈ǴǻǢèÍçáÇÕǫǧǵÇΩÇÁÇÊÇ¢Ç≈ǵÇÂǧǩÅB

  • ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃé¿çsÇÇ‚ÇflÇÈÅBDZÇÍÇÕç≈à´ÇÃâåàçÙÇ≈Ç∑ÅBç≈å„ÇÃéËíiÇ≈džÇËÅAç≈èâÇ…ëIëÇ∑Ç◊Ç´ï˚ñ@Ç≈ÇÕdžÇËÇ‹ÇπÇÒÅB
  • ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕë±çsÇ∑ÇÈÅBÇΩÇæÉÜÅ[ÉUÇÃê›íËÇÕï€ë∂ǵǻǢÅB

ǵǩǵÅAÉÜÅ[ÉUÇ™ÉvÉçÉOÉâÉÄÇêVǵǢê›íËÇ≈égÇ¢ÇΩÇ¢èÍçáÇÕǫǧǻÇÈÇÃÇ≈ǵÇÂǧÅB

  • ÉÜÅ[ÉUÇ™çsÇ¡ÇΩê›íËÇÕÇ∑Ç◊ǃóLå¯Ç…Ç∑ÇÈÅBÇΩÇæÇµï€ë∂ÇÕÇ≈ǴǻǢDZÇΔÇåxçêÇ∑ÇÈÅBDZÇÃèÍçáÅAÉvÉçÉOÉâÉÄÇÕêVǵǢê›íËÇ≈ìÆçÏÇµÇ»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅB
  • ï ÇÃÉtÉHÉãÉ_Ç…ï€ë∂Ç∑ÇÈÅBÉvÉçÉOÉâÉÄÇ™ê›íËÉtÉ@ÉCÉãÇîCà”ÇÃÉtÉHÉãÉ_Ç…ï€ë∂Ç≈Ç´ÇÈèÍçáÇÕÅAÉÜÅ[ÉUÇ…ï ÇÃèÍèäÇñ‚Ç¢çáÇÌÇπÇÈDZÇΔÇ≈ÅAê›íËÉtÉ@ÉCÉãÇÃï€ë∂ÇÉLÉÉÉìÉZÉãÇ∑ÇÈïKóvÇÕÇ»Ç≠Ç»ÇËÇ‹Ç∑ÅB

Å@

ê›íËÉtÉ@ÉCÉãÇ™âÛÇÍÇΩÇÁǫǧǵNjÇ∑Ç©ÅB

ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃëΩÇ≠ÇÕÅAìΔé©ÇÃÉäÉ\Å[ÉXÉfÅ[É^ç\ë¢ëÃÇä‹ÇfiÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇÃÇ›ÇÃê›íËÉtÉ@ÉCÉãÇópǢǃÅAãNìÆéûDžǪÇÍÇì«Ç›çûǛNjÇ∑ÅBResource Manager Ç…äÓÇ√Ǣǃê›íËÉtÉ@ÉCÉãÇégǧèÍçáÇÕǪÇÃêßñÒÇímÇ¡ÇƒÇ®Ç©Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBèdóvÇ»ÇÃÇÕÅAåªç›Çà Resource Manager ÇÕÉäÉ\Å[ÉXÉtÉ@ÉCÉãÇäJÇ≠ç€Ç…džNjÇËã≠óÕÇ»É`ÉFÉbÉNÇçsÇÌǻǢDZÇΔÇ≈Ç∑ÅBÉäÉ\Å[ÉXÉtÉ@ÉCÉãÇ™âÛÇÍǃǢǃÅAResource Manager Ç™ÉNÉâÉbÉVÉÖǵÇΩÇËÉGÉâÅ[ÇèoÇ∑ÇΔÅAÉÜÅ[ÉUÇ…ÇÕñ‚ëËÇî≠å©Ç∑ÇÈï˚ñ@ÇÕdžÇËÇ‹ÇπÇÒÅBÉÜÅ[ÉUǙDZÇÍÇ…ãCïtǢǃâÛÇÍÇΩê›íËÉtÉ@ÉCÉãÇçÌèúÇ∑ÇÈDZÇΔÇÕÇŸÇΔÇÒÇ«ä˙ë“Ç≈Ç´Ç‹ÇπÇÒÅB

DZÇÃÇÊǧǻóùóRÇ≈ÅAResource Manager Ç≈ê›íËÉtÉ@ÉCÉãÇäJÇ≠ëOÇ…ÅAê›íËÉtÉ@ÉCÉãÇÃÉäÉ\Å[ÉXÉ}ÉbÉvÇÉ`ÉFÉbÉNǵǃÇ≠ÇæÇ≥Ç¢ÅBDZÇÃÇΩÇflÇÃÉRÅ[ÉhÇ™ÅuInternet ConfigÅvÇÃàÍïîÇ…ÉpÉuÉäÉbÉNÉhÉÅÉCÉìÇΔǵǃíÒãüÇ≥ÇÍǃǢNjÇ∑ÅBIC Programmers Kit Çà ICResourceForkSanity.c ÇΔǢǧÉtÉ@ÉCÉãÇíTǵǃÇ≠ÇæÇ≥Ç¢ÅB

ê›íËÉtÉ@ÉCÉãÇ™âÛÇÍÇΩÇÁÅAÉÜÅ[ÉUDžǪÇÃéñé¿ÇåxçêÇµÇ»ÇØÇÍnjǻÇÁÇ∏ÅAä»íPÇ…å≥Ç…ñflÇπǻǢÇÊǧǻèàóùÇÇ∑ÇÆÇ…çsǡǃÇÕÇ¢ÇØÇ‹ÇπÇÒÅBëºÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ê›íËÉtÉ@ÉCÉãÇäJǢǃǮÇËÅAàÍéûìIÇ…âÛÇÍǃǢÇÈÇÊǧDžå©Ç¶ÇÈÇæÇØÇΔǢǧâ¬î\ê´Ç‡Ç†ÇËÇ‹Ç∑ÅBǪÇÃèÍçáÇÕÉtÉ@ÉCÉãÇè¡ÇµÇΩÇ≠ÇÕǻǢÇ≈ǵÇÂǧÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇ©ÇÁç≈ó«ÇΔévÇÌÇÍÇÈëŒèàï˚ñ@ÇÉÜÅ[ÉUÇ…íÒàƒÇ∑ÇÈDZÇΔÇÕǩNjǢNjÇπÇÒÇ™ÅAñ‚ëËâåàÇÃç≈èIåàífÇÕÉÜÅ[ÉUÇ™çsǶÇÈÇÊǧDžǵǃÇ≠ÇæÇ≥Ç¢ÅB

ëºÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ê›íËÉtÉ@ÉCÉãÇäJǢǃǢÇÈÇÌÇØÇ≈ÇÕÇ»Ç≠ÅAñ{ìñÇ…âÛÇÍǃǵNjǡÇΩÇÃÇ»ÇÁÅAÉfÉtÉHÉãÉgÇÃê›íËÇ©ÅAÉoÉbÉNÉAÉbÉvÇ≥ÇÍÇΩê›íËÇÃÇ¢Ç∏ÇÍÇ©Ç≈é¿çsÇë±ÇØÇÈÇ◊Ç´Ç≈Ç∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇèIóπǵǃê›íËÉtÉ@ÉCÉãÇçÌèúÇ∑ÇÈÇÊǧã≠Ç¢ÇÈDZÇΔÇÕÉÜÅ[ÉUÇé∏ñ]Ç≥ÇπÇ‹Ç∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕÉfÉtÉHÉãÉgÇÃê›íËÇ≈äÆëSÇ…égópÇ≈Ç´ÇÈâ¬î\ê´Ç™Ç†ÇËÅAÉÜÅ[ÉUÇÕã}Ç¢Ç≈ä»íPÇ»édéñÇï–Ç√ÇØÇƒÇµÇ‹Ç¢ÇΩÇ¢ÇÃǩLJǵÇÍÇ‹ÇπÇÒÅBǪÇÃÇÊǧǻèÍçáÇ…ÉÜÅ[ÉUÇ…ë¶ç¿Ç…ñ‚ëËÇâåàÇ∑ÇÈDZÇΔÇã≠Ç¢ÇÈDZÇΔÇÕìæçÙÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅB

ó«Ç¢ó·ÇΔǵǃÅAInternet Config ÇÕê›íËÉtÉ@ÉCÉãÇÃÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇÃÉRÉsÅ[ÇìØÇ∂ê›íËÉtÉ@ÉCÉãÇÃÉfÅ[É^ÉtÉHÅ[ÉNÇ…ï€ë∂ǵNjÇ∑ÅBÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇ™âÛÇÍÇΩÇÁÅAÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇè¡ÇµÅAÉfÅ[É^ÉtÉHÅ[ÉNì‡ÇÃÉfÅ[É^Ç©ÇÁÅAï€ë∂Ç≥ÇÍǃǢÇÈê›íËÇÉRÉsÅ[ǵǃÅAé¿çsÇë±ÇØÇ‹Ç∑ÅBDZÇÍÇÕï°éGÇ»ï˚ñ@Ç≈ÅAê›íËÉtÉ@ÉCÉãÇÃÉTÉCÉYLJî{Ç…Ç»ÇËÇ‹Ç∑ÅBÇΩÇæÅAïÅí ÇÕÇΩǢǵÇΩÉfÉBÉXÉNÉXÉyÅ[ÉXÇè¡îÔÇ∑ÇÈÇÌÇØÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅB

é©ï™ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈LJDZÇÃï˚ñ@ÇééǵǃǛÇΩǢǻÇÁÅAInternet Config ÇÃÉRÅ[ÉhÇÕÉpÉuÉäÉbÉNÉhÉÅÉCÉìÇ»ÇÃÇ≈ÅAñ≥óøÇ≈ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…éÊÇËçûÇfiDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

Å@

ï ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇΔê›íËÉtÉ@ÉCÉãÇ™ÉRÉìÉtÉäÉNÉgÇãNDZǵÇΩÇÁǫǧǵNjÇ∑Ç©ÅB

ê›íËÇï€ë∂ǵÇΩÇ¢èÍèäÇ…Ç∑Ç≈Ç…ëºÇÃÉtÉ@ÉCÉãÇ‚ÉtÉHÉãÉ_ǙdžÇÈèÍçáÇÕÅADZÇÃéñé¿ÇÉÜÅ[ÉUÇ…åxçêÇµÇ»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÇ™ÅAǪÇÃNjNjé¿çsÇ≈Ç´ÇÈÇÊǧDžǵNjÇ∑ÅB

â¬î\Ç≈džÇÍÇŒÅAê›íËÉtÉ@ÉCÉãÇï ÇÃèÍèäÇ…ï€ë∂ǵǃÇ≠ÇæÇ≥Ç¢ÅBǪǧÇ∑ÇÍÇŒÅAÉRÉìÉtÉäÉNÉgÇ™àÍéûìIÇ≈ǻǢèÍçáÅAÇΔÇËdžǶÇ∏ÉÜÅ[ÉUÇÕÇ«ÇøÇÁÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìégǧDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBï ÇÃèÍèäÇ…ï€ë∂Ç≈ǴǻǢÇΔÅAê≥ǵǢê›íËÉtÉ@ÉCÉãǙǻǢÉAÉvÉäÉPÅ[ÉVÉáÉìÇégǧDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB

DZÇÃñ‚ëËÇàÍî‘ä»íPÇ…âÒîÇ∑ÇÈÇ…ÇÕÅAå≈óLÇÃÉNÉäÉGÅ[É^ÉRÅ[Éh (ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉ) Ç≈ê›íËÉtÉ@ÉCÉãÇíTÇ∑ÇÊǧDžÇ∑ÇÈDZÇΔÇ≈Ç∑ÅBǪǧÇ∑ÇÍÇŒÉÜÅ[ÉUÇ™ê›íËÉtÉ@ÉCÉãÇÃñºëOÇïœçXǵǃLJÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ÇÕâeãøÇ™Ç†ÇËÇ‹ÇπÇÒÅB

ê›íËÉtÉ@ÉCÉãÇñºëOÇ≈íTÇ∑DZÇΔDžǵÇΩèÍçáÅAñºëOÇÃíÜÇ…ìoò^çœÇ›ÇÃï∂éöóÒ ("Apple" ǻǫ) ÇégǧÇΔÅAÉRÉìÉtÉäÉNÉgÇãNDZÇ∑â¬î\ê´Çå∏ÇÁÇ∑èïÇØÇ…Ç»ÇËÇ‹Ç∑ÅB


Å@

ñ¿Ç¡ÇΩèÍçáÇÕ

ëIëéàÇ™ÇΩÇ≠Ç≥ÇÒdžǡǃñ¿Ç§èÍçáÇÕÅADTS ÇÕéüÇÃDZÇΔÇÇ®Ç∑Ç∑ÇflǵNjÇ∑ÅB

  • íPàÍÇÃê›íËÉtÉ@ÉCÉãÇégÇ¢ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉÇΔìØÇ∂ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇéùÇΩÇπÇ‹Ç∑ÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ïtëÆÇ∑ÇÈÉtÉ@ÉCÉãÇÕÇ∑Ç◊ǃǪÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉÇΔàÍívÇ∑ÇÈÉNÉäÉGÅ[É^ÉRÅ[ÉhÇéùǬÇ◊Ç´ÇæÇ©ÇÁÇ≈Ç∑ÅB(ëºÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™égópÇ∑ÇÈÉtÉ@ÉCÉãÇçÏê¨Ç∑ÇÈèÍçáÇÕÅAÇ‡ÇøÇÎÇÒǪÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉVÉOÉlÉ`ÉÉÇégÇÌÇ»Ç≠ǃÇÕÇ»ÇËÇ‹ÇπÇÒÅB)
  • ê›íËÉtÉ@ÉCÉãÇÕ (FindFolder Ç™ï‘Ç∑) Ågèâä˙ê›íËÅhÉtÉHÉãÉ_Ç…ï€ë∂ǵNjÇ∑ÅB
  • ê›íËÉtÉ@ÉCÉãÇÃÉ^ÉCÉvÇÕ 'pref' DžǵNjÇ∑ÅB
  • ê›íËÉtÉ@ÉCÉãÇ…ÇÕîƒópÉAÉCÉRÉìÇégǢNjÇ∑ÅB
  • ÉÜÅ[ÉUÇ™ê›íËÉtÉ@ÉCÉãÇäJDZǧÇΔǵÇΩÇÁÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕê›íËÉ_ÉCÉAÉçÉOÇï\é¶ÇµÇ‹Ç∑ÅBÉ_ÉuÉãÉNÉäÉbÉNÇ≥ÇÍÇΩÉtÉ@ÉCÉãÇÃê›íËÇ≈ÇÕÇ»Ç≠ÅAåªç›ÇÃê›íËÇégópÇ∑ÇÈÇÊǧDžǵNjÇ∑ÅB
  • ê›íËÇ™ïœçXÇ≥ÇÍÇÈÇ‹Ç≈ÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕê›íËÉtÉ@ÉCÉãÇçÏê¨ÇµÇƒÇÕÇ¢ÇØÇ‹ÇπÇÒÅB
  • ê›íËÉtÉ@ÉCÉãÇ…èëÇ´çûǛǙÇ≈ǴǻǢèÍçáÇÕÅAÇ«ÇÍÇ≈LJÅAì«ÇfiDZÇΔÇÃÇ≈Ç´ÇΩê›íËÇégǢNjÇ∑ÅBÉÜÅ[ÉUÇ…ÇÕåªç›ÇÃê›íËÇïœçXÇ≥ÇπǃǩNjǢNjÇπÇÒÇ™ÅAêVǵǢê›íËÇï€ë∂Ç∑ÇÈDZÇΔÇ™Ç≈ǴǻǢDZÇΔÇåxçêǵǃÇ≠ÇæÇ≥Ç¢ÅB
  • ê›íËÉtÉ@ÉCÉãÇ™âÛÇÍÇΩÇÁÅAÉfÉtÉHÉãÉgÇÃílÇégǡǃé¿çsÇë±ÇØÇ‹Ç∑ÅBÇ≈Ç´ÇÍÇŒÅAï ÇÃèÍèäÇ©ÇÁê›íËÇïúå≥ǵǃǛǃÇ≠ÇæÇ≥Ç¢ÅB
  • ê›íËÉtÉ@ÉCÉãÇ™ï ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇΔÉRÉìÉtÉäÉNÉgÇãNDZǵÇΩÇÁÅAÉfÉtÉHÉãÉgÇÃílÇégǡǃé¿çsÇë±ÇØÇ‹Ç∑ÅBÉÜÅ[ÉUÇ…ê›íËÇïœçXÇ≥ÇπǃLJǩNjǢNjÇπÇÒÅBÇ≈Ç´ÇÍÇŒÅAê›íËÇï ÇÃèÍèäÇ©ÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_Ç…à·Ç§ñºëOÇ≈ï€ë∂ǵǃÇ≠ÇæÇ≥Ç¢ÅB
  • ê›íËÉtÉ@ÉCÉãÇ…ÅuÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™å©Ç¬Ç©ÇËÇ‹ÇπÇÒÇ≈ǵÇΩÅvÉÅÉbÉZÅ[ÉWï∂éöóÒÇó^ǶǃÇ≠ÇæÇ≥Ç¢ÅB

Å@

Ç‹ÇΔÇfl

ê›íËÉtÉ@ÉCÉãÇÃÉÅÉìÉeÉiÉìÉXÇÕå©ÇΩñ⁄ÇŸÇ«ä»íPÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBåüì¢Ç∑Ç◊Ç´ëIëéàÇΔî‰ärÇ∑Ç◊Ç´ÉgÉåÅ[ÉhÉIÉtǙdžÇËÇ‹Ç∑Ç™ÅAÇŸÇΔÇÒÇ«ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕê›íËÉtÉ@ÉCÉãÇéùǡǃǢÇÈÇÕÇ∏Ç»ÇÃÇ≈ÅAê≥ǵǢÉÅÉìÉeÉiÉìÉXÇÕÇ´ÇÌÇflǃèdóvǻDZÇΔÇ≈Ç∑ÅB

DZÇà TECHNOTE Ç≈ÇÕÅAçlǶÇÁÇÍÇÈâ¬î\ê´ÇãìÇ∞ÅAǪÇÃóòì_ÇΔåáì_Çé¶ÇµÇ‹ÇµÇΩÅBÇ≈Ç∑Ç©ÇÁÅAé©ï™ÇΔÉÜÅ[ÉUÇÃÇΩÇflÇ…ê≥ǵǢï˚ñ@ÇëIǑDZÇΔÇ™Ç≈Ç´ÇÈÇÊǧDžǻǡǃǢÇÈÇÕÇ∏Ç≈Ç∑ÅB


Å@

ïtò^ A: ÉTÉìÉvÉãÉRÅ[Éh

éüÇÃÉRÅ[ÉhÇÕÅAê›íËÉtÉ@ÉCÉãÇÉtÉ@ÉCÉãñºÇ©ÉNÉäÉGÅ[É^ÉRÅ[Éh (Ç‹ÇΩÇÕǪÇÃóºï˚) Ç≈íTÇ∑ï˚ñ@Çï\Ç∑LJÇÃÇ≈Ç∑ÅB

FindFolder ÇÕÅAéwíËÇÃÉtÉHÉãÉ_Ç™å©Ç¬Ç©ÇÁǻǢÇΔ fnfErr (-43) ÇÅAÉtÉHÉãÉ_ǙdžÇÈÇ◊Ç´èÍèäÇ…ÉtÉ@ÉCÉãǙdžÇÈÇΔ dupFNErr (-48) Çï‘ǵNjÇ∑ÅBFindPrefsFile ÇÃç≈å„ÇÃÉpÉâÉÅÅ[É^ÇÕ long ÇÃílÇ≈ÅADZÇÍÇÕè⁄ç◊ÉGÉâÅ[Çï\Ç∑ enum ÇÃÉCÉìÉfÉbÉNÉXÇ≈Ç∑ÅBÉGÉâÅ[Ç™ï‘Ç≥ÇÍÇΩÇΔÇ´ (ÇΔÇ´Ç… noErr Ç™ï‘Ç≥ÇÍÇΩÇΔÇ´Ç≈LJ) âΩÇ™ãNDZǡÇΩÇ©Çè⁄ǵÇ≠é¶ÇµÇ‹Ç∑ÅBDZÇÃílÇégǧÇΔÅAÉGÉâÅ[DžǬǢǃÉÜÅ[ÉUDžLJǡÇΔÇÊÇ≠ê‡ñæÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ (ÉÜÅ[ÉUÇ…ÉGÉâÅ[ÇÃà”ñ°Çì`ǶÇÈÇΔǵǃ)ÅBó·Ç¶ÇŒÅADZÇÃílÇ 'STR#' ÉäÉ\Å[ÉXÇ÷ÇÃÉCÉìÉfÉbÉNÉXÇΔǵǃégÇ¢ÅAÉÜÅ[ÉUÇ…ÉGÉâÅ[ÉÅÉbÉZÅ[ÉWÇé¶Ç∑DZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

/*
**  Apple Macintosh Developer Technical Support
**
**  ê›íËÉtÉ@ÉCÉãÇÉtÉ@ÉCÉãñºÇ©ÉNÉäÉGÅ[É^ÉRÅ[Éh (Ç‹ÇΩÇÕǪÇÃóºï˚) Ç≈
**  íTÇ∑ï˚ñ@Çï\Ç∑ÉãÅ[É`Éì
**  ÉtÉ@ÉCÉãñº:   FindPrefsFile.c
**  DZÇÃÉTÉìÉvÉãÉRÅ[ÉhÇÕÇ≤é©ï™ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈êßå¿Ç»Ç≠égópǵǃ
**  ǩNjǢNjÇπÇÒÇ™ÅADZÇÃÉTÉìÉvÉãÉRÅ[ÉhÇÕÅuǪÇÃNjNjÇ≈ÅvíÒãüÇ≥ÇÍÇÈLJ
**  ÇÃÇ≈džÇËÅAégópÇ∑ÇÈê”îCLJ 100% ǩǩÇËÇ‹Ç∑ÅBÇΩÇæÇµÅADZÇÃÉ\Å[ÉX
**  ÉRÅ[ÉhÇ…ïœçXÇâ¡Ç¶ÇΩå„Ç≈ÅuÉAÉbÉvÉãÇÃÉTÉìÉvÉãÉRÅ[ÉhÅvÇΔǵǃçƒîzïz
**  Ç∑ÇÈDZÇΔÇÕãñÇ≥ÇÍÇ‹ÇπÇÒÅBÉ\Å[ÉXÇçƒîzïzÇ∑ÇÈÇÃÇ≈džÇÍÇŒÅAÅuÉAÉbÉvÉãÇÃ
**  ÉTÉìÉvÉãÉRÅ[ÉhÅvÇ…ïœçXÇâ¡Ç¶ÇΩLJÇÃÇ≈džÇÈDZÇΔÇïKÇ∏ñæãLǵǃÇ≠ÇæÇ≥Ç¢ÅB
*/
Å@
#include <Types.h>
#include <Folders.h>
#include <Files.h>
#include <Errors.h>
#include <TextUtils.h>
Å@
#include <assert.h>
Å@
enum {
    noError                 = 0,
    noFileExists            = 1,
    notRightName            = 2,
    fileWithNameNotCreator  = 3,
    folderInsteadOfFile     = 4,
    tooManyFiles            = 5,
    findFolderErr           = 6
};
Å@
OSErr   FindPrefsFile (OSType creatorCode, Str63 prefsName,
  FSSpec * prefsFSSpec, long *result);
Å@
/*
     DZÇÃä÷êîÇÕÅAÉNÉäÉGÅ[É^ÉRÅ[ÉhÇΔÉtÉ@ÉCÉãñºÇégǡǃÅgPreferencesÅh
     ÉtÉHÉãÉ_Ç©ÇÁÇ©ÇÁÉtÉ@ÉCÉãÇíTǵNjÇ∑ÅB
Å@
     * äTóv:
Å@
     Ç‚ÇËÇ©ÇΩÇÕÇ‹Ç∏ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇ≈ê›íËÉtÉ@ÉCÉãÇíTǵÅAÉtÉ@ÉCÉãñºÇÕ
     ó\îıÇÃåüçıï˚ñ@ÇΔǵǃégópǵNjÇ∑ÅB
Å@
     ê≥ǵǢÉNÉäÉGÅ[É^ÉRÅ[ÉhÇéùǬÉtÉ@ÉCÉãǙǖÇΔÇ¬ÇæÇØå©Ç¬Ç©Ç¡ÇΩèÍçáÇÕÅA
     ñºëOÇ…ÇÕä÷åWÇ»Ç≠ÅAǪÇÃÉtÉ@ÉCÉãÇà FSSpec Çï‘ǵNjÇ∑ÅB
Å@
     ìØÇ∂ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇéùǬÉtÉ@ÉCÉãÇ™ï°êîå©Ç¬Ç©Ç¡ÇΩèÍçáÅAǪÇÃíÜÇ©ÇÁê≥ǵǢ
     ñºëOÇÃÉtÉ@ÉCÉãÇíTǵÅAå©Ç¬Ç©Ç¡ÇΩÇÁÅAǪÇÃÉtÉ@ÉCÉãÇà FSSpec Çï‘ǵNjÇ∑ÅB
Å@
     ê≥ǵǢÉNÉäÉGÅ[É^ÉRÅ[ÉhÇéùǬÉtÉ@ÉCÉãÇ™å©Ç¬Ç©ÇÁǻǢèÍçáÅALJǵ dupFNErr ÇΔ
     ñ‚ëËÇÃÉtÉ@ÉCÉãÇà FSSpec Ç™ï‘Ç≥ÇÍÇΩÇÁÅAê≥ǵǢñºëOÇÃÉtÉ@ÉCÉãǙdžÇÈÇ©
     É`ÉFÉbÉNǵNjÇ∑ÅBǪǧÇ≈Ç»ÇØÇÍÇŒÅAfnfErr ÇΔÉtÉ@ÉCÉãÇçÏê¨Ç∑Ç◊Ç´èÍèäÇÃ
     FSSpec Çï‘ǵNjÇ∑ÅB
Å@
     DZÇÃä÷êîÇÕâΩÇ™ãNDZǡÇΩÇ©ÇÇÊÇËè⁄ǵÇ≠ì`ǶÇÈ enum LJï‘ǵNjÇ∑ÅBDZÇÃílÇ
     égǡǃÅAÉÜÅ[ÉUÇ…âΩǙǧNjÇ≠ǢǩǻǩǡÇΩÇÃÇ©Ç (ïKóvÇ»ÇÁ) è⁄ǵÇ≠ì`Ƕ
     ǃÇ≠ÇæÇ≥Ç¢ÅBó·Ç¶ÇŒÅADZÇÃílÇ STR#ÉäÉ\Å[ÉXÇ÷ÇÃÉCÉìÉfÉbÉNÉXÇΔǵǃégǧ
     DZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
Å@
     * é¿ëï:
Å@
     Ç‹Ç∏ä»íPÇ»ÉeÉXÉgÇçsǢNjÇ∑ÅBê≥ǵǢñºëOÇéùǬÉtÉ@ÉCÉãÇíTǵǃǛǃÅA
     ÉtÉ@ÉCÉãǙdžÇÍÇŒÅAÉtÉ@ÉCÉãÉ^ÉCÉvÇ™ê≥ǵǢǩÇÉ`ÉFÉbÉNǵNjÇ∑ÅB
     DZÇà 2 ǬǙê≥ÇµÇØÇÍÇŒÅAǪÇÍà»è„ÇÃåüçıÇÕçsÇÌÇ∏ÅADZÇÃÉtÉ@ÉCÉãÇÃ
      FSSpec Çï‘ǵNjÇ∑ÅB
Å@
     éwíËÇ≥ÇÍÇΩñºëOÇΔÉNÉäÉGÅ[É^ÇéùǬÉtÉ@ÉCÉãÇ™å©Ç¬Ç©ÇÁǻǢèÍçáÇÕÅA
    ÅgPreferencesÅh
     ÉtÉHÉãÉ_ì‡ÇÃÇ∑Ç◊ǃÇÃÉtÉ@ÉCÉãÇåüçıǵǃÉNÉäÉGÅ[É^ÉRÅ[ÉhÇí≤Ç◊Ç‹Ç∑ÅB
     àÍívÇ∑ÇÈÉNÉäÉGÅ[É^ÉRÅ[ÉhÇÃÉtÉ@ÉCÉãÇ™å©Ç¬Ç©Ç¡ÇΩÇÁÅAÉeÉìÉ|ÉâÉäÇà FSSpec
     Ç…ÉRÉsÅ[ǵǃåüçıÇë±ÇØÇ‹Ç∑ÅBìØÇ∂ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇÃï ÇÃÉtÉ@ÉCÉãÇ™
     å©Ç¬Ç©ÇÈÇΔåüçıÇíÜé~ǵÅAfnfErr Çï‘ǵNjÇ∑ÅBFSSpec ÇÕê≥ǵǢñºëOÇ
     éùǬÉtÉ@ÉCÉãÇÃdžÇÈÇ◊Ç´èÍèäÇ…ê›íËǵǃï‘ǵNjÇ∑ÅB
Å@
     ê≥ǵǢÉNÉäÉGÅ[É^ÉRÅ[ÉhÇÃÉtÉ@ÉCÉãǙǖÇΔÇ¬ÇæÇØå©Ç¬Ç©Ç¡ÇΩèÍçáÇÕÅAǪÇÍÇ
     FSSpec Ç≈ï‘ǵÅAä÷êîÇÕÉtÉ@ÉCÉãñºÇ™âΩÇ≈džÇÎǧǙÅAnoErr Çï‘ǵNjÇ∑ÅB
*/
Å@
OSErr   FindPrefsFile (OSType creatorCode, Str63 prefsName, FSSpec *
   prefsFSSpec, long *result) {
    HParamBlockRec      hpb;
    FSSpec              matchFSSpec;
    SInt32              foundPrefDirID      = 0;
    UInt32              numMatches          = 0;
    SInt16              foundPrefVRefNum    = 0;
    OSErr               err                 = noErr;
    Str63               fileName            = "\p";
    Boolean             shortCircuit        = false,
                        foundFileName       = false,
                        foundDirectory      = false;
Å@
    assert (prefsName != nil);
    assert (prefsName[0] <= 63);
    assert (prefsFSSpec != nil);
Å@
    // åüçıÇÇÕÇ∂ÇflÇÈÅgPreferences ÅhÉtÉHÉãÉ_Çåüçı
    err = FindFolder (kOnSystemDisk, kPreferencesFolderType,
    kDontCreateFolder, &foundPrefVRefNum, &foundPrefDirID);
Å@
    // Ç‹Ç∏ä»íPÇ»åüçıÇçsǧÅBê≥ǵǢñºëOÅAÉNÉäÉGÅ[É^ÉRÅ[ÉhÇÃÉtÉ@ÉCÉãÇíTÇ∑ÅB
    if (err == noErr) {
        BlockMoveData (prefsName, fileName, prefsName[0] + 1);
        hpb.fileParam.ioCompletion = nil;
        hpb.fileParam.ioNamePtr = fileName;
        hpb.fileParam.ioVRefNum = foundPrefVRefNum;
        hpb.fileParam.ioDirID = foundPrefDirID;
        hpb.fileParam.ioFDirIndex = 0;
Å@
        // å©Ç¬Ç©ÇÁǻǩǡÇΩèÍçáÇ…ï‘Ç∑ÅAÉtÉ@ÉCÉãÇÃdžÇÈÇ◊Ç´èÍèäÇé¶Ç∑ FFSpec Ç
        // ëgÇ›óßǃÇÈ
        err = FSMakeFSSpec (foundPrefVRefNum, foundPrefDirID, prefsName, prefsFSSpec);
        if (err == noErr) {
            foundFileName = true;
            err = PBHGetFInfoSync (&hpb);
Å@
            if (err == noErr) {
                if (hpb.fileParam.ioFlFndrInfo.fdCreator == creatorCode) {
                    // íTǵǃǢÇÈÉtÉ@ÉCÉãǙdžǡÇΩ
                    shortCircuit = true;
                    numMatches = 1;
                    if (result != nil) {
                        *result = noError;
                    }
                }
            } else {
                // PBHGetFInfoSync Ç™ÉGÉâÅ[Çï‘ǵÇΩÇÁÅA
                // ǪÇÍÇÕǮǪÇÁÇ≠ÉfÉBÉåÉNÉgÉäÇåüçıǵÇΩÇ©ÇÁÅB
                foundDirectory = true;
                err = noErr;    // ÉNÉäÉGÅ[É^É^ÉCÉvÇ≈åüçıÇë±çs
                if (result != nil) {
                    *result = folderInsteadOfFile;
                }
            }
        } else {
            err = noErr;    // ÉNÉäÉGÅ[É^É^ÉCÉvÇ≈åüçıÇë±çs
        }
    } else {
        if (result != nil) {
            *result = findFolderErr;
        }
    }
Å@
    // ñºëOÇ≈çáívÇ∑ÇÈÉtÉ@ÉCÉãÇÕǻǢÇÃÇ≈ÉNÉäÉGÅ[É^É^ÉCÉvÇ≈åüçıÇ∑ÇÈ
    if (err == noErr && shortCircuit == false) {
        // Ågèâä˙ê›íËÅhÉtÉHÉãÉ_ì‡ÇÃÇ∑Ç◊ǃÇÃÉtÉ@ÉCÉãÇ≈ÅAéwíËÇÃÉNÉäÉGÅ[É^
        // É^ÉCÉvÇéùǬLJÇÃǙǻǢǩí≤Ç◊ÇÈ
        do {
            // ÉtÉ@ÉCÉãÇÃÉNÉäÉGÅ[É^ÉRÅ[ÉhÇí≤Ç◊ÇÈ
            hpb.fileParam.ioFDirIndex += 1;
            hpb.fileParam.ioDirID = foundPrefDirID;
            err = PBHGetFInfoSync (&hpb);
Å@
            // ÉtÉ@ÉCÉãǙǻǢÇΔâºíËÇ∑ÇÈ
            if (result != nil) {
                *result = noFileExists;
            }
Å@
            if (err == noErr && hpb.fileParam.ioFlFndrInfo.fdCreator == creatorCode) {
                // ÉtÉ@ÉCÉãÇÕê≥ǵǢÉNÉäÉGÅ[É^ÉRÅ[ÉhÇéùǬÇÃÇ≈ÅAãLò^Ç∑ÇÈ
                if (numMatches == 0) {
                    matchFSSpec.vRefNum = foundPrefVRefNum;
                    matchFSSpec.parID = foundPrefDirID;
                    BlockMoveData (fileName, matchFSSpec.name, fileName[0] + 1);
                    numMatches = 1;
                } else {
                    // ìØÇ∂ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇÃÉtÉ@ÉCÉãǙLJǧǖÇΔǬdžǡÇΩÇ™ÅA
                    // ÉtÉ@ÉCÉãñºÇÕà·Ç§
Å@
                    // Ç«ÇÃÉtÉ@ÉCÉãÇï‘ǵÇΩÇÁǢǢǩÇÌÇ©ÇÁǻǢÇÃÇ≈åüçıÇíÜé~
Å@
                    numMatches = 2;
                }
            }
        } while (err != fnfErr && numMatches < 2);
    }
Å@
    if (numMatches == 0) {
        if (foundDirectory == true) {
            err = notAFileErr;
            if (result != nil) {
                *result = folderInsteadOfFile;
            }
        } else if (foundFileName == true) {
            err = dupFNErr;     // ñºëOÇÕê≥ǵǢǙÉNÉäÉGÅ[É^ÉRÅ[ÉhÇ™à·Ç§
            if (result != nil) {
                *result = fileWithNameNotCreator;
            }
        } else {
            err = fnfErr;
        }
    } else if (numMatches == 1 && shortCircuit == false) {
        // ê≥ǵǢLJÇÃÇ™ 1 å¬å©Ç¬Ç©Ç¡ÇΩÅBǵÇΩǙǡǃDZÇÍÇ™ê≥ǵǢê›íËÉtÉ@ÉCÉãÇæ
        BlockMoveData (&matchFSSpec, prefsFSSpec, sizeof (FSSpec));
        err = noErr;
        if (result != nil) {
            *result = notRightName;
        }
    } else if (numMatches > 1) {
        // ìØÇ∂ÉNÉäÉGÅ[É^ÉRÅ[ÉhÇÃÉtÉ@ÉCÉãÇ™ï°êîå©Ç¬Ç©Ç¡ÇΩÅB
        // ǬNjÇËÇ«ÇÍLJê≥ǵǢñºëOÇ≈ÇÕǻǢÅB
        //  (ê≥ÇµÇØÇÍÇŒç≈èâÇÃä»íPÇ»ÉeÉXÉgÇ≈å©Ç¬Ç©Ç¡ÇƒÇ¢ÇÈÇÕÇ∏ÇæÇ©ÇÁ)
        // ÇæÇ©ÇÁ fnfErr Çï‘Ç∑ÅB
        err = fnfErr;
        if (result != nil) {
            *result = tooManyFiles;
        }
    }
Å@
    return err;
}

éüÇÃÉRÅ[ÉhÇÃífï–ÇÕÅAÅgèâä˙ê›íËÅhÉtÉHÉãÉ_Ç©ÇÁÉtÉ@ÉCÉãÇñºëOÇ≈íTÇ∑ï˚ñ@Çé¶ÇµÇ‹Ç∑ÅB

FindFolder ÇÕÉVÉXÉeÉÄÉtÉHÉãÉ_Ç©Ågèâä˙ê›íËÅhÉtÉHÉãÉ_Ç™å©Ç¬Ç©ÇÁǻǢÇΔ (ǪǵǃÅADZÇÃÉRÅ[ÉhÇÃÇÊǧDž kDontCreateFolder ÇégǡǃǢÇÈèÍçá)ÅAfnfErr (-43) Çï‘ǵNjÇ∑ÅBFSMakeFSSpec ÇÕÅAéwíËÇ≥ÇÍÇΩñºëOÇÃÉtÉ@ÉCÉãÇ‹ÇΩÇÕÉtÉHÉãÉ_ǙǻǢÇΔÅAfnfErr Çï‘ǵNjÇ∑ÅBÉtÉ@ÉCÉãǙǻǢèÍçáÇÕÅAê›íËÉtÉ@ÉCÉãÇÇ‹Ç∏çÏê¨ÇµÇƒÇ©ÇÁÇ≈ǻǢÇΔäJÇ≠DZÇΔÇ™Ç≈Ç´Ç‹ÇπÇÒÅB

íçà”: FSMakeFSSpec ÇÕÅAéwíËÇ≥ÇÍÇΩñºëOÇÃÉtÉHÉãÉ_Ç™ë∂ç›Ç∑ÇÍÇŒÅAóLå¯Ç» FSSpec Çï‘ǵNjÇ∑ÅBï‘Ç≥ÇÍÇΩ FSSpec ÇäJÇ≠ÇΔÇ´Ç…ÇÕÅAÉtÉ@ÉCÉãÉIÅ[ÉvÉìÇÃåƒÇ—èoǵǙé∏îsǵÇΩÇΔÇ´Ç…ëŒâûÇ≈Ç´ÇÈÇÊǧDžǵǃǮǢǃÇ≠ÇæÇ≥Ç¢ÅB

#include <Types.h>
#include <Folders.h>
#include <Files.h>
#include <Errors.h>
#include <TextUtils.h>
Å@
#include <assert.h>
Å@
enum {
    // åƒÇ—èoǵë§Ç™éØï â¬î\Ç»ñ¢égópÇÃÉGÉâÅ[î‘çÜÇégǧ
    findFolderErr   = 128
};
Å@
OSErr FindPrefsByName (FSSpec * prefsFSSpec) {
    OSErr               err                 = noErr;
    SInt32              foundPrefDirID      = 0;
    SInt16              foundPrefVRefNum    = 0;
    Str255              prefsName;
Å@
    assert (prefsFSSpec != nil);
Å@
    // ê›íËÉtÉ@ÉCÉãñºÇí≤Ç◊ÇÈ
    GetIndString (prefsName, kPreferencesSTRRes, kPrefsNameSTRIndex);
Å@
    if (prefsName == nil) {
        // ê›íËÉtÉ@ÉCÉãñºÇà nil Ç»ÇÁÅAǮǪÇÁÇ≠ÉäÉ\Å[ÉXÇÕë∂ç›ÇµÇ»Ç¢
        err = resNotFound;
    }
Å@
    if (err == noErr) {
        // åüçıÇénÇflÇÈÅgèâä˙ê›íËÅhÉtÉHÉãÉ_ÇíTÇ∑
        err = FindFolder (kOnSystemDisk, kPreferencesFolderType,
        kDontCreateFolder, &foundPrefVRefNum, &foundPrefDirID);
    }
Å@
    if (err == noErr) {
        // ê›íËÉtÉ@ÉCÉãǙdžÇÈÇ◊Ç´èÍèäÇà FFSpec ÇçÏê¨Ç∑ÇÈ
        err = FSMakeFSSpec (foundPrefVRefNum, foundPrefDirID, prefsName, prefsFSSpec);
    } else {
        err = findFolderErr;
    }
Å@
    return err;
}

éQçlï∂å£


É_ÉEÉìÉçÅ[Éh

Internet Config source

çXêVì˙: 1998 îN 6 åé 198ì˙